package com.unswift.window.component;

public interface UiComponent {
	
	final static String ATTRIBUTE_EDITOR_UNDO_MANAGER="undoManager";
	final static String ATTRIBUTE_JSON_FILE="jsonFile";
	
	final static String ACTION_AUTOMATION_JSON="automationJson";
	final static String ACTION_AUTOMATION_CONSOLE="automationConsole";
	final static String ACTION_INTERFACE_JSON="interfaceJson";
	final static String ACTION_CREATE_INTERFACE_JSON="createInterfaceJson";
	final static String ACTION_INTERFACE_CONSOLE="interfaceConsole";
	final static String ACTION_HELP="help";
	
	/**
	 * 获取组件的扩展属性
	 * @param key
	 * @return
	 */
	<T> T getAttribute(String key);
	/**
	 * 设置组件的扩展属性
	 * @param key
	 * @param t
	 */
	<T> void setAttribute(String key, T t);
	/**
	 * 是否存在扩展属性
	 */
	boolean existsAttribute(String key);
	/**
	 * 删除组件的扩展属性
	 * @param key
	 */
	void removeAttribute(String key);
	/**
	 * 获取组件的业务动作或业务类型
	 * @return
	 */
	String getBusAction();
	/**
	 * 设置组件的业务动作或业务类型
	 * @param busAction
	 */
	void setBusAction(String busAction);
}
